最近工作项目升级到 Swift 3,被 Xcode 8 的各种卡顿折磨已久,终于可以下载 Xcode 9 来脱离苦海了。但没想到的是解决了各种运行问题之后,在 iOS 10 以下系统运行正常,在 iOS 11 运行却莫名其妙地Crash。如下图:
几番搜索之后,通过dyld: could not load inserted library '/usr/lib/libgmalloc.dylib' because image not found
的报错信息,找到stackoverflow上有人通过关闭Enable guard Malloc
解决了问题。试试我的项目根本没有开启Enable guard Malloc
,在diagnostics
里面只有开启Main Thread Checker
,如下图:
抱着试试看的态度,把Main Thread Checker
关掉运行了下,居然真的没有 Crash 了。
搜了下Main Thread Checker
的相关信息,只找到了 Apple 的文档Main Thread Checker有相关说明。这个工具主要用来检查 AppKit
、 UIKit
之类的 API 是否在后台线程执行,但在 Xcode 9 Beta 版上似乎还有 Bug,才导致了这类 Crash,希望等到 Xcode 正式版了可以修复吧,现在先把这个检查关了。